IF exists(SELECT * FROM dbo.sysobjects WHERE name='WEB_maakWeekroosterXMLLokaal' AND xtype='P') 
BEGIN
	DROP PROCEDURE WEB_maakWeekroosterXMLLokaal
END
GO

CREATE  procedure WEB_maakWeekroosterXMLLokaal
(@lokalen char(400),
 @d varchar(2), @m varchar(2), @j varchar(4))
as
set nocount on

select '4' as volgNr,'do' as kort,'Donderdag' as lang into #dagen
insert into #dagen(volgNr,kort,lang) values('2','di','Dinsdag')
insert into #dagen(volgNr,kort,lang) values('3','wo','Woensdag')
insert into #dagen(volgNr,kort,lang) values('1','ma','Maandag')
insert into #dagen(volgNr,kort,lang) values('5','vr','Vrijdag')

declare dagCursor cursor for
  select kort,lang from #dagen 
  order by volgNr

declare @dagLang varchar(10)
declare @dagKort varchar(2)
declare @volguur int
declare @leraars varchar(1000)
declare @klassen varchar(1000)
declare @tekst varchar(1000)
declare @uur varchar(2)
declare @vak varchar(2)
declare @klas varchar(5)
declare @lokaal varchar(5)
declare @leraar varchar(4)

create table #lerRooster
	(deLeraar varchar(4),
	hetVak varchar(2),
	deKlas varchar(20),
	deDag varchar(2),
	hetUur int,
	hetLokaal varchar(20))

-- Bepalen van de onderzochte dag(en)

declare @dag datetime
set @dag = convert(dateTime,@d + '/' + @m + '/' + @j,103)

------------------------------------------------------------------
--  Opstellen XML-tekst
------------------------------------------------------------------

create table #roosterXML(hoofdNr int, dagKort varchar(2), volgNr int, tekst varchar(1000))

-- Header
insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (0,'aa',0,'<?xml version=''1.0'' encoding="ISO-8859-1" ?>')

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (0,'bb',0,'<?xml-stylesheet type="text/xsl" href="weekRooster.xsl" ?>' +
'<rooster>' +
'<titel>' + rtrim(@lokalen) + '</titel>' +
'<datum>' + @d + '-' + @m + '-' + @j + '</datum>')

-- Dagen

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
select 1,kort,0,'<' + lang + '>' from #dagen

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
select 1,kort,9999,'</' + lang + '>' from #dagen


-- Bepalen van de verschillende lokaalnamen uit de opgave.

declare @start int
declare @einde int
set @start=1
while (@start < len(@lokalen))
begin
  set @einde = charindex('-',@lokalen,@start)
  set @lokaal = rtrim(substring(@lokalen,@start,@einde-@start))
  set @start=@einde+ 1

  -- Vullen van een hulptabel met de gegevens van dit lokaal

  delete from #lerRooster
  insert into #lerRooster
  execute RV_weekroosterLokaal @lokaal,@dag

  open dagCursor
  fetch next from dagCursor into @dagKort,@dagLang
  while (@@fetch_status = 0)
    begin
      set @volgUur = 1
      while (@volgUur < 9)
	begin
	  set @leraars = ''
          set @klassen = ''
	  declare XMLCursor cursor for
	      select distinct hetVak,deLeraar,hetUur,deKlas from #lerRooster
	      where deDag = @dagKort 
		       and hetUur = @volgUur
	  open XMLCursor
	  fetch next from XMLCursor into @vak,@leraar,@uur,@klas
	  if (@@fetch_status=0)
  	    begin
	      while (@@fetch_status = 0) 
	        begin
		  set @leraars = @leraars + ' ' + @leraar
                  set @klassen = @klassen + ' ' + @klas
              	  fetch next from XMLCursor into @vak,@leraar,@uur,@klas
		end    		
   	      set @tekst= '<u' + @uur + 
		  ' leraar = "' + @leraars +  
		  '" lokaal="' + @lokaal + 
		  '" klas="' + @klassen +
		  '" vak="' + @vak + '"/>'
	       insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
	       values(1,@dagKort,@volgUur,@tekst) 
	     end
	   set @volgUur = @volgUur + 1	
	   close XMLCursor
	   deallocate XMLCursor
	 end
       fetch next from dagCursor into @dagKort,@dagLang
     end
  close dagCursor
end
deallocate dagCursor

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (9999,'',0,'</rooster>')

select * from #roosterXML
order by hoofdNr,dagKort,volgNr